package score;

/*
 * digitoVerificacion.java
 *
 * Created on 30 de mayo de 2007, 04:04 PM
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

/**
 *
 * @author analista4
 */
public class digitoVerificacion {
    
    /** Creates a new instance of digitoVerificacion */
    public digitoVerificacion() {
    }
    
    
    
    public Integer creacionDigitoDeVerificacion(String valorNit){
        char[] numero = new char[15];
        char[] numeroInv = new char[15];
        for(int i=0;i<=14;i++){
            numero[i]=0;
            numeroInv[i]=0;
        }
        int contadorInvertido;
        int contador;
        int valorDigito;
        int longitud;
        int[] numeroFactor = new int[15];        
        int residuo;
        int total = 0;
        
        numeroFactor[0] =3;
        numeroFactor[1] =7;
        numeroFactor[2] =13;
        numeroFactor[3] =17;
        numeroFactor[4] =19;
        numeroFactor[5] =23;
        numeroFactor[6] =29;
        numeroFactor[7] =37;
        numeroFactor[8] =41;
        numeroFactor[9] =43;
        numeroFactor[10] =47;
        numeroFactor[11] =53;
        numeroFactor[12] =59;
        numeroFactor[13] =67;
        numeroFactor[14] =71;
        
        longitud = valorNit.length();
        for(int i=0;i<longitud;i++){
            numero[i]=valorNit.toString().charAt(i);
        }
        
        contadorInvertido=0;
        contador=longitud-1;
        while(contador>=0){
            numeroInv[contadorInvertido]=numero[contador];
            contador--;
            contadorInvertido++;
        }
        
        for(contador=0;contador<longitud;contador++){
            int num1 = Integer.parseInt(String.valueOf(numeroInv[contador]));
            int num2 = numeroFactor[contador];
            total = total+(num1*num2);
        }
        residuo = total%11;
        
        switch (residuo){
            case 0 :
                valorDigito=0;
                break;
            case 1 :
                valorDigito=1;
                break;
            default:
                valorDigito=11-residuo;
                break;
        }
        return new Integer(valorDigito);
    }
}